﻿using Sustainalytics.Entities;
using System;
using System.Collections.Generic;

namespace Sustainalytics.Portfolios.BL
{
    public interface IPortfolioDetailsManagement
    {
        void AddPortfolioSecurities(ICollection<PortfolioDetails> portfolioDetails);

        void DeletePortfolioSecuritiesByPortfolioId(Guid portfolioId);

        void DeletePortfolioSecurity(Guid portfolioId, Guid id, PortfolioUserClaims userClaims);

        IList<PortfolioDetails> GetPortfolioDetails(PortfolioDetailsFilter filter, PortfolioUserClaims userClaims, int? skip, int? take, string[] orderBy = null, bool orderByAsc = true);

        long GetPortfolioSecuritiesCount(PortfolioDetailsFilter filter, PortfolioUserClaims userClaims);

        IList<PortfolioDetails> GetSecuritiesForPortfolio(Guid portfolioId);

        void InsertPortfolioDetails(Guid portfolioId, int securityId, PortfolioUserClaims userClaims);
    }
}